package com.mach.platform.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.List;

/**
 * @author Administrator
 * @Name 基础公用的方法
 * @Description: @NoRepositoryBean 该注解作用是，spring忽略该类作为bean被扫描到
 * @date 2018/4/23 0023   10:49
 */
@NoRepositoryBean
public interface BaseRepository<T> extends JpaRepository<T, Long>, JpaSpecificationExecutor<T> {

	/**
	 * 批量删除根据id 删除，要都要id作为主键
	 *
	 * @param ids 删除的id集合
	 * @return 影响数
	 */
	int deleteByIdIn (Long[] ids);

	/**
	 * 获取id的相关数据
	 *
	 * @param ids 实体的集合
	 * @return List<T>
	 */
	List<T> getByIdIn (Long[] ids);

	/**
	 * 根据id 获取指定实体
	 *
	 * @param id 实体id
	 * @return T
	 */
	T getById (Long id);

}
